Matlab里[XI,YI] = meshgrid(ti,ti);ZI = griddata(mx,my,mz,XI,YI);怎么理解?

来源:百度知道 编辑:UC知道 时间:2024/06/04 03:41:26
尤其是后一句,好像是一种插值方法。但不知道具体的数据是转换的?为什么会出现NaN(不是一个数据)?
griddata默认是线性插值,可是mx、my、mz、XI、YI与ZI之间是怎么计算的?为什么要用第一句[XI,YI] = meshgrid(ti,ti);才能使用第二句。

对于griddata插值没有必要需要第一个meshgrid语句,但是为了是插值后的数据,能够使用mesh等绘图,故我们需使用meshgrid生成插值数据网格

=======================================

二维插值Matlab中提供了interp2和griddata函数

两者的区别是,interp2的插值数据必须是矩形域,一般使用meshgid生成的

而griddata函数的插值数据X和Y没有那么多数据,特别是对试验中随机没有规律采取的数据进行插值具有很好的效果

griddata(X,Y,xi,yi,'v4') v4是一种一种插值算法,没有具体的名字,一般认为是最好的

X和Y提供的已知数据点,xi和yi是需要插值的数据点,一般使用meshgrid生成,当然也可以其他数据,但是那样绘图的时候就比较麻烦,不能使用mesh等,只能使用trimesh

%by dynamic
%see also http://www.matlabsky.com
%contact me matlabsky@gmail.com
%2009.2.
%

griddata是一种插值函数,由不等间距分布的点产生等间距分布的栅格点。

ZI = griddata(mx,my,mz,XI,YI);可以在后面加一具体插值方法,
ZI = griddata(mx,my,mz,XI,YI,‘cubic’);这就是 基于非栅格点数据点和cubic方法估计插值点函数值。

meshgrid命令是以x,y向量为基准,来产生在x-y平面的各栅格点坐标值的矩阵